var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var UserSchema = new Schema({
    email: String, //账号
    password: String, //密码
    nickName: String, //昵称
    face: String, //头像
    qq: Number, //手机号码
    address: String, //住址
    //权限 0 普通用户  1 管理员 2 音乐人
    role: {
        type: Number,
        default: 0
    },
    //创建时间 最后登录时间
    meta: {
        createAt: {
            type: Date,
            default: Date.now()
        },
        loginAt: {
            type: Date,
            default: Date.now()
        }
    }
});
UserSchema.pre('save', function(next) {
    var user = this;
    if (user.isNew) {
        user.meta.createAt = user.meta.updataAt = Date.now();
    } else {
        user.meta.updataAt = Date.now();
    }
    next();
});
UserSchema.statics = {
    fetch: function(cb) {
        return this
            .find({})
            .sort('meta.createAt')
            .exec(cb)
    },
    fetchByAttr: function(value, cb) {
        return this
            .find()
            .sort('meta.createAt')
            .exec(cb)
    },
    findOneByAttr: function(value, cb) {
        return this
            .findOne(value)
            .exec(cb)
    },
    top: function(cb) {
        return this
            .find({})
            .skip(1 * (10 - 1), cb)
            .limit(100)
            .sort('meta.createAt')
            .exec(cb)
    }
}
module.exports = UserSchema;
